// pages/todo-ajax/todo-ajax.js

let url = "http://localhost:3000/todos";
Page({
  /**
   * 页面的初始数据
   */
  data: {
    todos: [
      // { id: 1, text: '学习微信小程序开发', completed: false },
      // { id: 2, text: '完成待办事项页面', completed: true },
      // { id: 3, text: '提交作业', completed: false }
    ],
    remainingCount: 2,
    inputValue: "",
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.loadTodosList();
    // this.calculateRemainingCount();
  },
  loadTodosList() {
    wx.request({
      url: url,
      method: "GET",
      success: (res) => {
        console.log(res.data);

        this.setData({
          todos: res.data,
        });
        this.calculateRemainingCount();
      },
    });
  },

  /**
   * 处理输入框值变化
   */
  onInputChange(e) {
    this.setData({
      inputValue: e.detail.value,
    });
  },

  /**
   * 添加待办事项
   */
  addTodo() {
    // const { todos, inputValue } = this.data;
    // if (inputValue.trim() === "") return;
    // const newTodo = { id: Date.now(), text: inputValue, completed: false };
    // this.setData({
    //   todos: [...todos, newTodo],
    //   inputValue: "",
    // });
    // this.calculateRemainingCount();
    const { inputValue } = this.data;
    if (inputValue.trim() === "") return;
    wx.request({
      url: url,
      method: "POST",
      data: {
        title: inputValue,
        completed: false,
      },
      success: (res) => {
        console.log(res.data);
        this.loadTodosList();
        this.setData({
          inputValue: "",
        });
      },
    });
  },

  /**
   * 切换待办事项完成状态
   */
  toggleTodo(e) {
    const { id } = e.currentTarget.dataset;
    const { todos } = this.data;

    // 从 todos 数组中找到要更新的待办事项
    let todo = todos.find((todo) => todo.id === id);
    if (!todo) return; // 如果未找到，直接返回

    wx.request({
      url: url + "/" + id,
      method: "patch",
      data: {
        completed: !todo.completed,
      },
      success: (res) => {
        console.log(res.data);
        this.loadTodosList();
      },
    });

    // const updatedTodos = todos.map((todo) => {
    //   if (todo.id === id) {
    //     return { ...todo, completed: !todo.completed };
    //   }
    //   return todo;
    // });
    // this.setData({
    //   todos: updatedTodos,
    // });
    // this.calculateRemainingCount();
  },

  /**
   * 删除待办事项
   */
  deleteTodo(e) {
    // const { id } = e.currentTarget.dataset;
    // const { todos } = this.data;
    // const updatedTodos = todos.filter((todo) => todo.id !== id);
    // this.setData({
    //   todos: updatedTodos,
    // });
    // this.calculateRemainingCount();

    const { id } = e.currentTarget.dataset;
    wx.request({
      url: url + "/" + id,
      method: "DELETE",
      success: (res) => {
        console.log(res.data);
        this.loadTodosList();
      },
    });
  },

  /**
   * 清除已完成待办事项
   */
  clearCompleted() {
    const { todos } = this.data;
    // const updatedTodos = todos.filter((todo) => !todo.completed);
    // this.setData({
    //   todos: updatedTodos,
    // });
    // 循环遍历--所有的todo，调用删除接口
  },

  /**
   * 计算剩余未完成项数
   */
  calculateRemainingCount() {
    const { todos } = this.data;
    const remainingCount = todos.filter((todo) => !todo.completed).length;
    this.setData({
      remainingCount,
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {},

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {},

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {},

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {},

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {},
});
